জেসন (JSON - JavaScript Object Notation) একটি লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট যা মানুষের পঠনযোগ্য এবং মেশিনের মাধ্যমে সহজে পার্স করা যায়। এটি মূলত key-value pairs ব্যবহার করে ডেটা প্রতিনিধিত্ব করে। JSON এর key-value pairs ব্যবহারের মাধ্যমে তথ্য আদান প্রদান খুবই সহজ এবং সুবিধাজনক হয়। এটি ওয়েব অ্যাপ্লিকেশন, API, এবং ডেটাবেসের মধ্যে ডেটা আদান-প্রদান করতে ব্যাপকভাবে ব্যবহৃত হয়।
Key-Value Pairs কী?
Key-Value Pair হল দুটি উপাদান: একটি key এবং একটি value। key একটি স্ট্রিং টাইপের, যা একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করে, এবং value হচ্ছে সেই key-এর সাথে সম্পর্কিত ডেটা যা যেকোনো ডেটা টাইপের হতে পারে যেমন স্ট্রিং, নাম্বার, বুলিয়ান, অ্যারে বা অন্য JSON অবজেক্ট।
JSON ফরম্যাটে ডেটা এইভাবে থাকে:
{
"key": "value"
}
এখানে "key" একটি স্ট্রিং, এবং "value" হচ্ছে সেই key-এর মান, যা স্ট্রিং, নাম্বার, অ্যারে বা অন্যান্য JSON অবজেক্ট হতে পারে।
JSON Example: Key-Value Pair
নিচে একটি JSON ডেটা উদাহরণ দেওয়া হলো, যেখানে বিভিন্ন key-value pair রয়েছে:
{
"name": "John Doe",
"age": 30,
"isEmployed": true,
"address": {
"street": "123 Main St",
"city": "New York"
},
"phoneNumbers": ["123-456-7890", "987-654-3210"]
}
এখানে:
"name":"John Doe"(এটি একটি স্ট্রিং টাইপ value)"age":30(এটি একটি নাম্বার টাইপ value)"isEmployed":true(এটি একটি বুলিয়ান টাইপ value)"address": একটি অন্য JSON অবজেক্ট, যা একটি নতুন key-value pair ধারণ করে।"phoneNumbers": একটি অ্যারে, যা একাধিক স্ট্রিং ধারণ করে।
Java তে JSON এর Key-Value Pair প্রসেসিং
Java তে JSON ডেটা পার্স এবং প্রক্রিয়া করার জন্য সাধারণত Jackson, Gson, বা org.json লাইব্রেরি ব্যবহার করা হয়। এই লাইব্রেরিগুলি JSON ডেটা থেকে key-value pair এক্সট্রাক্ট এবং সেট করতে সাহায্য করে।
১. Jackson ব্যবহার করে JSON Key-Value Pair পড়া
Jackson লাইব্রেরি ব্যবহার করে JSON ডেটা পার্স করার উদাহরণ:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class JSONExample {
public static void main(String[] args) throws IOException {
String jsonString = "{\"name\": \"John Doe\", \"age\": 30, \"isEmployed\": true}";
// ObjectMapper এর মাধ্যমে JSON পার্স করা
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> map = objectMapper.readValue(jsonString, Map.class);
// Key-Value Pair এক্সট্রাক্ট করা
System.out.println("Name: " + map.get("name"));
System.out.println("Age: " + map.get("age"));
System.out.println("Is Employed: " + map.get("isEmployed"));
}
}
এই কোডে:
ObjectMapperব্যবহার করা হয়েছে JSON স্ট্রিংকে Map-এ রূপান্তর করতে।- JSON স্ট্রিং থেকে key-value pair গুলো বের করা হয়েছে এবং map.get("key") ব্যবহার করে value গুলো পাওয়া গেছে।
২. Gson ব্যবহার করে JSON Key-Value Pair পড়া
Gson লাইব্রেরি ব্যবহার করে JSON ডেটা পার্স করার উদাহরণ:
import com.google.gson.Gson;
import java.util.Map;
public class GsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\": \"John Doe\", \"age\": 30, \"isEmployed\": true}";
// Gson ব্যবহার করে JSON স্ট্রিং পার্স করা
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(jsonString, Map.class);
// Key-Value Pair এক্সট্রাক্ট করা
System.out.println("Name: " + map.get("name"));
System.out.println("Age: " + map.get("age"));
System.out.println("Is Employed: " + map.get("isEmployed"));
}
}
এই উদাহরণে:
Gsonব্যবহার করে JSON ডেটা Map এ রূপান্তরিত করা হয়েছে এবং key-value pair গুলো এক্সট্রাক্ট করা হয়েছে।
JSON তে Nested Key-Value Pair
JSON ডেটা প্রায়ই nested থাকে, অর্থাৎ একটি key-ভ্যালু পেয়ার অন্য একটি JSON অবজেক্টে থাকতে পারে। এর মাধ্যমে জটিল ডেটা কাঠামো সহজে তৈরি করা সম্ভব হয়।
{
"employee": {
"name": "John Doe",
"position": "Developer",
"department": {
"name": "IT",
"location": "New York"
}
}
}
এখানে:
"employee"key এর মান একটি nested JSON অবজেক্ট।"department"key এর মানও একটি nested JSON অবজেক্ট।
Java-তে এরকম nested key-value pair পড়ার উদাহরণ:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class NestedJSONExample {
public static void main(String[] args) throws IOException {
String jsonString = "{\"employee\": {\"name\": \"John Doe\", \"position\": \"Developer\", \"department\": {\"name\": \"IT\", \"location\": \"New York\"}}}";
// JSON পার্স করা
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> map = objectMapper.readValue(jsonString, Map.class);
// Nested Key-Value Pair এক্সট্রাক্ট করা
Map<String, Object> employee = (Map<String, Object>) map.get("employee");
System.out.println("Employee Name: " + employee.get("name"));
System.out.println("Position: " + employee.get("position"));
// Nested Department এর Key-Value Pair
Map<String, Object> department = (Map<String, Object>) employee.get("department");
System.out.println("Department Name: " + department.get("name"));
System.out.println("Location: " + department.get("location"));
}
}
সারাংশ
Key-Value Pairs হল JSON এর মূল কাঠামো, যা ডেটা উপস্থাপন এবং এক্সচেঞ্জ করার জন্য খুবই কার্যকরী। JSON ফরম্যাটের মাধ্যমে বিভিন্ন ধরনের ডেটা যেমন স্ট্রিং, নাম্বার, অ্যারে বা অবজেক্ট সহজে সংরক্ষণ ও প্রক্রিয়া করা যায়। Java তে Jackson, Gson, বা org.json লাইব্রেরি ব্যবহার করে JSON ডেটা পার্স এবং key-value pair গুলো অ্যাক্সেস করা খুবই সহজ। JSON এ nested key-value pair এর সাহায্যে আরও জটিল ডেটা কাঠামো তৈরি করা যায়, যা আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির জন্য অপরিহার্য।
Read more